package cn.iocoder.yudao.module.infra.dal.mysql.face;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.infra.controller.admin.face.vo.FaceConfigPageReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.face.FaceConfigDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 人脸识别配置 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface FaceConfigMapper extends BaseMapperX<FaceConfigDO> {

    /**
     * 获取启用的人脸识别配置
     *
     * @return 人脸识别配置
     */
    default FaceConfigDO selectEnabledConfig() {
        return selectOne("enabled", true);
    }

    default PageResult<FaceConfigDO> selectPage(FaceConfigPageReqVO pageReqVO) {
        return selectPage(pageReqVO, new LambdaQueryWrapperX<FaceConfigDO>()
                .likeIfPresent(FaceConfigDO::getAppId, pageReqVO.getAppId())
                .eqIfPresent(FaceConfigDO::getEnabled, pageReqVO.getEnabled())
                .betweenIfPresent(FaceConfigDO::getCreateTime, pageReqVO.getCreateTime())
                .orderByDesc(FaceConfigDO::getId));
    }

}